package com.study.daily.algozuo.y2022.m01.day0108;

import java.util.Arrays;
import java.util.HashMap;

/**
 * @descriptions:
 * @author: Tom
 * @date: 2022/1/8 下午 02:04
 * @version: 1.0
 */
public class Code02_MaxLengthString {
    public static void main(String[] args) {

    }

    /**
     * a,b,c字符串的数量分别为aCount, bCount, cCount
     * 组成一个字符串，要求连续字符的数量不超过3个
     * @param aCount
     * @param bCount
     * @param cCount
     * @return
     */
    public String getMaxLengthString(int aCount, int bCount, int cCount){
        StringBuffer str = new StringBuffer();
        int[][] arr = new int[][]{{0, aCount}, {1, bCount}, {2, cCount}};
        while(str.length() == 0 || check(str, arr)){
            getMaxAndMiddle(arr);
            for(int i = 0; i < 3; i++){
                int N = str.length();
                if(str.charAt(N-1) != (char)('a' + i)){
                    if(arr[i][1] >= 2){
                        str.append((char)('a' + i)).append((char)('a' + i));
                    } else if (arr[i][1] >= 2){

                    }
                }
            }
        }
        return str.toString();
    }
    public static boolean check(StringBuffer str, int[][] arr){
        int N = str.length();
        for(int i = 0; i < arr.length; i++){
            if(str.charAt(N-1)!=(char)('a' + arr[i][0])){
                if(arr[i][1] != 0){
                    return true;
                }
            }
        }
        return false;
    }
    public static int[][] getMaxAndMiddle(int[][] arr){
//        int[][] tmp = arr;
//        int[] ans = new int[2];
        Arrays.sort(arr,(a,b)-> a[1]-b[1]);
//        ans[0] = tmp[2];
//        ans[1] = tmp[1];
        return arr;
    }
}
